package middleware

/**
* @Description: ip拦截器
* @Author: Walker
* @Date: 2021/4/16
 */

import (
	"github.com/gin-gonic/gin"
	"net/http"
)

//返回类型：HandlerFunc
func IpAuthorize() gin.HandlerFunc {
	return func(c *gin.Context) {
		//获取ip
		//ip := service.GetRealIp(c.Request)
		//查询数据库是否存在该ip
		res := 0 //ip2.IfExistsIp(ip)
		if res == 1 {
			// 验证通过，会继续访问下一个中间件
			c.Next()
		} else {
			// 验证不通过，不再调用后续的函数处理
			c.Abort()
			c.JSON(http.StatusUnauthorized, gin.H{
				"code":    401,
				"message": "访问未授权",
				"data":    res,
			})
			// return可省略, 只要前面执行Abort()就可以让后面的handler函数不再执行
			return
		}
	}
}
